package com.heatup.apt.common.dao;

import com.baomidou.mybatisplus.mapper.AutoMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.heatup.apt.model.AccessDevice;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * AccessDevice 表数据库控制层接口
 */
@Component
public interface AccessDeviceMapper extends AutoMapper<AccessDevice> {

    /**
     * 根据门禁设备ID 更新设备最后在线时间
     *
     * @param accessDevice
     * @return
     */
    @Update({
            "update access_device",
            "set device_status = #{deviceStatus},",
            "last_update_time = NOW()",
            "where device_serial_id = #{deviceSerialId}"
    })
    int updateByAccessDeviceSerialId(AccessDevice accessDevice);

    /**
     * 根据 设备序列号 查询设备
     *
     * @param deviceSerialId 设备序列号
     * @return 门禁设备
     */
    AccessDevice queryAccessDeviceBySerialId(String deviceSerialId);

    /**
     * 查询所有在线的门禁设备
     *
     * @return 所有在线的门禁设备
     */
    List<AccessDevice> queryAllAccessDevice();

    /**
     * 分页查询门禁设备
     *
     * @param page         分页插件
     * @param accessDevice 查询参数
     * @return 分页数据
     */
    List<AccessDevice> queryAccessDeviceListPage(Page<AccessDevice> page, AccessDevice accessDevice);

    /**
     * 根据订单 ID 查询对应的门禁设备信息
     *
     * @param orderId 订单 ID
     * @return 门禁信息
     */
    AccessDevice queryAccessDeviceByOrderId(Integer orderId);

}